﻿using System;
using System.Runtime.Serialization;

namespace Dynamic.Facades.EntLib.Logging
{
    /// <summary>
    /// 日志类型
    /// </summary>
    [Flags]
    [DataContract]
    public enum TraceListenerCategory
    {
        /// <summary>
        /// 写入事件查看器中
        /// </summary>
        [DataMember]
        FormattedEventLog = 1,

        /// <summary>
        /// 数据库（需要额外的数据库服务器）
        /// </summary>
        [DataMember]
        DatabaseTrace = 2,

        /// <summary>
        /// 电子邮件（需要额外的邮件服务器）
        /// </summary>
        [DataMember]
        Email = 4,

        /// <summary>
        /// 写入文本中（默认trace.log在debuge文件夹中）
        /// </summary>
        [DataMember]
        FlatFile = 8,

        /// <summary>
        /// 写入消息队列中 【如果是分布式服务必须选这个且只能用Binary Formatter 进行格式化】
        /// </summary>
        [DataMember]
        Msmq = 16,

        /// <summary>
        /// 根据当前日志文件的累积量和/或尺寸创建新的日志文件的跟踪监听程序
        /// </summary>
        [DataMember]
        RollingFlatFileTrace = 32,

        /// <summary>
        /// .NET 框架跟踪监听程序之一，如 Console Trace Listener
        /// </summary>
        [DataMember]
        SystemDiagnostics = 64,

        /// <summary>
        /// 为每个接收到的日志条目触发一个 WMI 管理事件的跟踪监听程序
        /// </summary>
        [DataMember]
        WMI = 128, //

        /// <summary>
        /// 写入到XML文件中
        /// </summary>
        [DataMember]
        XMLTrace = 256,

        /// <summary>
        /// 自定义
        /// </summary>
        [DataMember]
        CustomTrace = 512,
    }
}
